This chapter presents the requirements and recommendations for ATA (AT Attachment), ATAPI (AT Attachment Packet Interface) controllers, and peripherals designed to work with the Microsoft Windows family of operating systems. ATA is commonly known as IDE (Integrated Drive Electronics).
This section summarizes the basic design requirements for Windows-compatible IDE hardware, including adapters, peripherals, and any device that uses an IDE controller.
The ATA/IDE interface is one of the most widely used in the PC world. Originally intended only for hard drives, IDE support is being extended to additional device types and performance features.
The major issues for IDE and ATAPI devices for PC 97 are the following:
A major shortcoming of removable media devices on PC platforms is their inability to report to the host when the user attempts to eject the medium. Devices must have a means of communicating to the host that the user wants to eject the medium or has inserted a new medium. The solution required by Microsoft is the Media Status Notification Specification (v. 1.03 or higher), which defines a protocol for such support. The support is enabled using a SET FEATURES command, and the media status is retrieved using a new ATA command, GET MEDIA STATUS.
Support for the ATA STANDBY command continues to be required. New power management requirements are also defined.
The overall power management design initiative is described in Part 1 of this guide. The specific power management requirements for IDE are defined in this chapter. Additional requirements for storage devices are defined in the "Storage and Related Peripherals" chapter in Part 4 of this guide.
This section summarizes the specifications and standards for Windows-compatible IDE controllers.
Required |
Recommended: ATA3 compliance.
All IDE adapters (and peripherals) must meet the hardware and software design requirements listed in the current version of the AT Attachment 2 specification.
Required |
The Int 13h Extensions ensure correct support for high-capacity drives, consistent drive-letter mapping between real mode and protected mode, and other capabilities for both Windows 95 and Windows NT. Support for the "fixed disk access" subset of Int 13h Extensions must be provided in the system BIOS and in any option ROMs for storage devices that include BIOS support. The Int 13h Extensions are defined in "Int 13h Extension APIs" in the Layered Block Device Drivers section of the Windows 95 DDK.
Required |
The Microsoft specification for Media Status Notification support (v. 1.03 or higher) defines the protocol for ATA and ATAPI devices to use in communicating about the current state of removable media.
Required |
Dual IDE devices allow for writing data to both devices with the expectation that the data is to be serialized outside of the device. If PCI IDE bus mastering is implemented, dual IDE adapters must be built to run in Native mode and must be compliant with the PCI IDE Controller Specification (revision 0.9, dated May 1994, or later versions). When a device is enabled, whether in Native or Compatibility mode, it must be able to report whether it is programmable in Native mode, so that Windows can move the device's resources if necessary.
Native mode is not required for integrated IDE in a south bridge multifunction device that supports Compatibility mode for Programmed Input/Output (PIO).
Required |
PCI dual IDE adapters must be designed so that either channel might be used at any time - that is, the operating system does not have to serialize access between the primary and secondary channel at any time. This means that either the two channels are totally independent or that anything which is shared, such as a PIO read prefetch buffer, is protected by a hardware arbitrator.
A design implementing a single FIFO that uses a hardware solution to synchronize access to both channels meets this requirement if the design does not require a request on one channel be completed before the other can be started.
The Compaq, Intel, Phoenix BIOS Boot Specification (Section 5.0) defines the implementation for dual asynchronous channels.
Dual-channel controllers that require special software to serialize channel I/O for a single prefetch FIFO do not qualify for the "Designed for Microsoft Windows" logo. Such designs require serial access to one of four devices, defeating the primary advantage of asynchronous dual-channel controllers. Further, such devices are non-standard and require custom driver support. Microsoft strongly discourages introduction of non-standard IDE hardware, because it negatively impacts traditional compatibility of the IDE interface. Notice, however, that dual-channel controllers that do not require special software to serialize channel I/O do qualify for the logo.
Required |
To enable support for IDE disk drives larger than 528 MB, the system BIOS must use a logical block addressing (LBA) scheme that is compatible with the BIOS/CMOS and IDE register set constraints.
Although ATAPI was defined to be transparent to the BIOS, the BIOS must recognize the presence of ATAPI devices using the signature as defined in SFF 8020i. In some cases, without such support the BIOS might fail to configure the adapter if it does not see a device.
Recommended |
The programming register set for PCI IDE bus master DMA is defined in Small Form Factor (SFF) 8038i. IDE drives should be compliant with SFF 8038i to ensure fully-featured hardware and Windows-compatible device driver support.
With ATAPI CD-ROM, PIO demands placed on the system CPU can have a negative impact on system performance and application processing, especially for multimedia. Bus master DMA IDE adapters, which leverage local bus data rates, can provide higher data rates and the ability to offload the system CPU from I/O transfers. Other factors that encourage the adoption of bus master DMA include the increased disk media transfer rates, plus the demands made by multitasking operating systems and multichannel/multidevice IDE configurations.
Note This will become a requirement in 1998.
Required if no bus mastering |
Note This is required if PCI IDE bus mastering is not implemented. This alternate implementation can be used instead of PCI IDE bus master DMA for PC 97.
Fast PIO mode timing is defined in ATA-2, but the BIOS support should set up fast PIO mode transfers to accommodate chip-specific implementations, because an industry-standard programming interface does not exist for setting up timing.
Various problems have been observed with 32-bit PIO adapters. Manufacturers who implement 32-bit PIO for IDE adapters must follow the ATA-2 signal protocol to ensure that data integrity is preserved and to eliminate potential problems with early ISR entry.
Required |
SFF 8020i Section 10.0 (v. 1.2 or higher) defines the cabling and connectors required for automatic configuration of a device as master (dev0) or slave (dev1) on a given channel.
Required |
Pin 1 orientation must be designated by one edge of the ribbon cable and also on the keyed connector of the IDE or ATAPI peripheral device.
This section summarizes the Plug and Play requirements for IDE controllers and peripherals.
Required |
For example, an add-on PCI IDE device must comply with PCI 2.1 requirements and also provide a Subsystem ID and Subsystem Vendor ID, as defined in the "PCI" chapter in Part 3 of this guide. PCI IDE controllers integrated into core logic on the system board do not have to provide Subsystem IDs and Vendor Subsystem IDs, but must meet the other requirements in the PCI 2.1 specification.
Required |
Changing or adding a controller to the system must not require changing jumpers or switches on either the controller or the system board.
Required |
Plug and Play resource configuration requirements are defined by the bus used by the IDE device, as defined in the related chapters in Part 3 of this guide. For nonPCI devices, the following is required:
Using the standard addresses ensures the proper functioning of software written for legacy systems. Support for alternate I/O addresses 170h - 177h ensures support for enhanced IDE.
Required |
Although IDE device might use these addresses, 3F7h and 377h also contain registers used by the floppy disk controller. To prevent resource conflicts, these addresses must not be claimed as resources in device registers.
This section summarizes the specific power management requirements for IDE. Power management requirements for peripherals that use IDE are defined in the related device-class chapters in Part 4 of this guide.
Required |
The IDE drive must implement the ATA STANDBY command according to the ATA standard to ensure that the drives are able to spin up properly after a STANDBY command.
Required |
The IDE channel must comply with the "Device Class Power Management Reference Specification" for the storage device class. Additional power management requirements are specified based on industry-defined standards for the bus used by the controller (such as PCI) and for the device. For information, see the chapter for the related bus class in Part 3 in this guide.
This section summarizes requirements related to specifications and standards for IDE and ATAPI peripherals.
This section defines the requirements for all ATAPI devices.
Required |
This specification defines standard hardware and software design guidelines for ATAPI devices. Notice additional requirements for BIOS support of Int 13 Extensions earlier in this chapter.
Required |
ATAPI specification SFF 8020i v. 2.5 defines the process for enumeration of all ATAPI devices.
Required |
The Microsoft specification for Media Status Notification support (v. 1.03 or higher) defines the protocol for ATA and ATAPI devices to use in communicating about the current state of removable media.
Required |
SFF 8020i Section 10.0 (v. 1.2 or higher) defines the cabling and connectors required for automatic configuration of a device as master (dev0) or slave (dev1) on a given channel. This required Cable Select (CSEL) support eliminates the need for master-slave jumpers on the drive.
The implementation for boot drive determination in multiple-drive systems is defined in the Compaq, Intel, Phoenix BIOS Boot Specification (Section 5.0). This is the format Windows operating systems will use as the consistent method for determining the boot drive as new bootable devices are introduced for PCs. The system designer can use an equivalent method for boot drive determination, but the method must ensure that the boot drive is recognized by the Windows 95 and Windows NT operating systems.
Required |
Pin 1 orientation must be designated by one edge of the ribbon cable and also on the keyed connector of the IDE or ATAPI peripheral device.
Recommended |
Ensure that the ATAPI RESET command is processed by the peripheral, even if the firmware state cannot be determined. Reset the controller by going into a power-up state (clear requests, signature present), except leave any nondefault Mode values in their current state and leave the DRV bit unchanged (Section 6.2 of SFF 8020i v. 1.2 or higher).
Recommended |
IDE devices should comply with Small Form Factor (SFF) 8038i to ensure fully-featured hardware and Windows-compatible device driver support.
Note This will become a requirement in 1998.
Optional |
The SMART IOCTL API Specification published by Compaq Computer Corporation and Microsoft Corporation (v. 1.1 or higher) describes the API for an application to issue SMART commands to an IDE drive under Microsoft Windows. In Windows 95, the API is implemented in a Vendor Specific Driver (VSD), Smartvsd.vxd.
This section defines requirements for CD-ROM devices attached to an IDE adapter.
Required |
CD-ROM drives attached to the PC system must support the hardware and protocols documented in the ATA Packet Interface for CD-ROMs, SFF-8020i v. 1.2 (or higher).
Required |
Implement both multisession forms of the READ_TOC command (01b and 10b), as well as the compatibility form (00b). This ensures complete support for multisession capabilities for CD-ROM.
This section presents the requirements for IDE floppy drives.
Required |
This version of the SFF 8020i specification defines implementation requirements that the Windows operating system supports, including support for ATA floptical drives.
This section presents the requirements for DVD that uses IDE. For complete requirements related to DVD, see the "Storage and Related Peripherals" chapter in Part 4 of this guide.
Required |
This version of the SFF 8020i specification defines implementation requirements that the Windows operating system supports.
This section lists some of the publications, services, and tools available to help build hardware that work with Windows operating systems.
Media Status Notification specifications
SMART IOCTL API Specification v. 1.1 or higher
http://www.microsoft.com/hwdev/specs/
ATA 2 [X3T9.2 948D]
ATA Packet Interface for CD-ROM, SFF 8020I
Global Engineering Documents
15 Inverness Way East
Englewood, CO 80112-5704
Phone: (800) 854-7179
Outside U.S. and Canada: (303) 792-2181
Fax: (303) 397-2740
Compaq, Intel, Phoenix BIOS Boot Specification v. 1.01
http://www.ptltd.com/techs/specs.html
Programming Interface for Bus Master IDE, SFF 8038i Rev. 1.0
and other Small Form Factor Committee (SFF) documents
FaxAccess: (408) 741-1600 (faxback)
Windows 95 DDK and Windows NT DDK
MSDN Professional membership
The Windows 95 DDK includes the "Int 13h Extensions API."
IDE Controllers Requirements | ||||
---|---|---|---|---|
1. Compliance with ATA-2 specification | ||||
Required | ||||
2. Support Int 13h Extensions in BIOS and option ROMs | ||||
Required | ||||
3. Media Status Notification support v. 1.03 or higher | ||||
Required | ||||
4. Dual IDE adapters run in Native mode with PCI IDE bus mastering | ||||
Required | ||||
5. Dual IDE adapters use single FIFO with asynchronous access or dual FIFOs and channels | ||||
Required | ||||
6. Support for LBA in system BIOS | ||||
Required | ||||
7. PCI IDE bus master DMA compliant with SFF 8038i | ||||
Recommended | ||||
8. Support for fast PIO modes | ||||
Required if no bus mastering | ||||
9. Support SFF 8020i Section 10.0 (Cable Select) for master-slave configuration | ||||
Required | ||||
10. Pin 1 cable designation for connections | ||||
Required | ||||
Plug and Play for IDE Controllers and Peripherals | ||||
11. Plug and Play device identifier | ||||
Required | ||||
12. Dynamic resource configuration for all devices | ||||
Required | ||||
13. Resource configuration per bus requirements | ||||
Required | ||||
14. 3F7h and 377h not claimed by IDE devices | ||||
Required | ||||
Power Management for IDE Devices | ||||
15. Correct support for ATA STANDBY | ||||
Required | ||||
16. Power requirements for bus and device | ||||
Required | ||||
Design Features for IDE and ATAPI Peripherals | ||||
ATAPI Peripheral General Requirements
| ||||
17. Compliant with SFF 8020i v. 1.2 or higher | ||||
Required | ||||
18. All ATAPI devices enumerated by BIOS compliant with SFF 8020i v. 2.5 | ||||
Required | ||||
19. Media Status Notification support v. 1.03 or higher | ||||
Required | ||||
20. Automatic configuration of firmware based on CSEL configuration | ||||
Required | ||||
21. Pin 1 cable designation for connections | ||||
Required | ||||
22. ATAPI RESET supported in hardware, per SFF 8020i v. 1.2 | ||||
Recommended | ||||
23. PCI IDE bus mastering compliant with SFF 8038i | ||||
Recommended | ||||
24. SMART-compliant drive uses SMART IOCTL API | ||||
Optional | ||||
IDE CD-ROM Peripheral Requirements | ||||
25. Compliant with SFF 8020i v. 1.2 (or higher) | ||||
Required | ||||
26. Support multisession and compatibility forms of READ_TOC | ||||
Required | ||||
IDE Floppy Drive Peripheral Requirements | ||||
27. IDE floppy drive compliant with SFF 8020i v. 2.6 | ||||
Required | ||||
IDE DVD Peripheral Requirements | ||||
28. IDE DVD compliant with SFF 8020i v. 3.0 | ||||
Required | ||||
|